1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
cours git openclassrooms
https://openclassrooms.com/fr/courses/5641721-utilisez-git-et-github-pour-vos-projets-de-developpement
https://wiki.archlinux.org/index.php/git
Git est un logiciel qui sert à gérer du code source. Ces fonctionnalités sont
- d'héberger du code:
- le contrôle de versions
- le travail collaboratif
En gros, il garde le code source d'un projet en gardant les anciennes versions,
De plus, il note quel utilisateur à déposé quel code.
Un code peut donc être vérifié par tout le monde avant que soit mis à jour le fichier principal.
C'est un système distribué, il est possible de se connecter à n'importe quel dépôt de la même manière.
Il sont interconnectés et apparaissent à l'utilisateur comme un seul serveur.
Configuration avec la console.
On doit d'abord donné un nom d'utilisateur et un mot de passe:
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com''
Pour activer les couleurs:
git config --global color.diff auto
git config --global color.status auto
git config --global color.branch auto
Choix d'un éditeur (par défaut vim, on peut en choisir un graphique):
git config --global core.editor nano
git config --global merge.tool vimdiff
Pour le master se nomme toujours master:
git config --global init.defaultBranch master
Pour convertir les fins de ligne en CRLF
git config --global core.autocrlf true
Pour afficher toutes les règles choisies:
git config --list
Aspect général de l'utilisation de git.
1/ Créer un dépôt, on a pour ça deux possibilités:
- créer un dépôt local
- Créer un compte github (ou autre) et "forker" un projet (open source du coup).
2/ Sur son PC, créer un dossier avec le nom du projet, puis initialiser:
mkdir projet
cd projet
git init
Ce "projet" peut être perso (et hébergé sur github ou autre) ou un projet open source auquel on contribue.
Il contient maintenant un dossier caché: .git
3/ récuperer l'URL du projet (bouton vert clone or download)
et lier le projet à notre dépôt local avec la commande:
git remote add OC https://github.com/OpenClassrooms-Student-Center/ProjetOpenSource.git
4/ cloner le projet sur son propre dépôt github et entrer dedans:
git clone https://github.com/OpenClassrooms-Student-Center/ProjetOpenSource.git
cd ProjetOpenSource
Ce sous-dossier contient aussi un dossier caché .git
L'ensemble des fichiers et dossiers du projet est visible avec l'explorateur de fichiers.
Le terminal quand à lui va nous afficher des branches.
Au début, on a juste le "master", c'est à dire la version d'origine, on ne la modifiera jamais.
5/ Créer une branche sur laquelle on codera:
git branch modifs
Lorsque le nouveau code sera satisfaisant, on pourra chercher à l'ajouter au "master".
Git est justement capable de fusionner proprement l'ancien code avec le nouveau
en sachant quelles sont les portions qui ont changé et si il y a des conflits entre branches.
Si on travaille à plusieurs, on confira une partie du projet à chaque personne, sans croisement.
Pour connaître les branches d'un projet:
git branch
J'obtients:
* master
modifs
Les fichiers que je vois dans l'explorateur de fichiers sont donc ceux du master.
6/ Il est temps de coder!
On passe d'une branche à l'autre:.
git checkout modifs
git checkout master
Les fichiers visibles avec l'explorateur de fichiers sont maintenant ceux de la branche modifs.
Je suis dans une sorte de monde parallèle où je peux coder sans que ça impacte les originaux,
Je suis physiquement toujours dans le même dossier, mais dans une autre version de celui-ci.
projet
|-> .git
|-> nom_du_dossier cloné
|-> .git
|-> fichiers & dossiers sources
7/ Quand j'ai fini de coder, j'enregistre les changements dans git:
git commit -m "nom descriptif pour s'y retrouver"
Le master ne change pas, ce qu'on vient de faire est une sorte de photo de la branche à un instant T.
8/ Pour mettre à jour le master distant:
git push
Le mode de passe du compte sur le serveur est demandé.
9/ Demander au responsable du projet open source d'intégrer notre travail au projet.
Lui laisser un commentaire avec des explications sur les "améliorations" apportées,
le responsable du projet acceptera ou non la mise à jour.
On appelle ça une "pull request".
projet open source
| ^
fork pull request
v |
dépôt perso distant
/ ^
clonage commit + push
v |
dépôt local master => dépôt local branche
Travailler en local.
|